#version 330 core
layout(location = 0) in vec3 vertex_pos;
layout(location = 1) in vec3 normal_vec;

out vec3 Position;
out vec3 Normal;

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main() {
  Position = vec3(model * vec4(vertex_pos, 1.0));
  Normal = mat3(transpose(inverse(model))) * normal_vec;
  gl_Position = projection * view * model * vec4(vertex_pos, 1.0);
}
